from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from monitoring.models import ZabbixServer


class Command(BaseCommand):
    help = '初始化监控系统的默认数据'

    def handle(self, *args, **options):
        self.stdout.write('开始初始化监控系统数据...')
        
        # 获取第一个超级用户作为创建者
        admin_user = User.objects.filter(is_superuser=True).first()
        if not admin_user:
            self.stdout.write(self.style.WARNING('警告：未找到超级用户，请先创建超级用户'))
            return
        
        # 创建默认Zabbix服务器配置（如果不存在）
        self.stdout.write('创建默认Zabbix服务器配置...')
        
        if not ZabbixServer.objects.filter(is_default=True).exists():
            default_zabbix = ZabbixServer.objects.create(
                name='默认Zabbix服务器',
                description='默认的Zabbix监控服务器配置',
                url='http://localhost/zabbix',  # 需要用户手动修改
                username='Admin',
                password='zabbix',  # 默认密码，需要用户修改
                is_active=True,
                is_default=True,
                connection_status='unknown',
                created_by=admin_user
            )
            self.stdout.write(self.style.SUCCESS(f'✓ 创建默认Zabbix服务器: {default_zabbix.name}'))
            self.stdout.write(self.style.WARNING('⚠️ 请在Zabbix服务器管理页面修改URL和认证信息'))
        else:
            self.stdout.write('默认Zabbix服务器配置已存在，跳过创建')
        
        self.stdout.write(self.style.SUCCESS('监控系统数据初始化完成！'))
        self.stdout.write('请访问 /zabbix/servers 页面配置Zabbix服务器连接信息')
